2005年10月13日
川俣晶の縁側ソフトウェア技術雑記 total 4146 count

CSSの色指定をJavaScriptで代入する際、Operaでのみ色が違う問題

Written By: 川俣 晶連絡先

 ブラウザ間の非互換性には罠が多いですね。

 うかつなコードを書くと、あっさりはまります。

現象 §

 HTMLのページ中に記述したJavaScriptのコードを用いて、CSSの色指定プロパティの書き換えを行った場合、Internet ExplorerとFirefoxでは意図した色になるのに、Operaでは意図した色にならない場合がある。

 たとえば、以下のようなコードによって行われる色の変更は、上記3ブラウザの中でOperaだけ異なる結果となる。

document.getElementById('body').style.backgroundColor = 0xeeee22

解決(?) §

 数値ではなく、CSSで指定する書式の文字列として色を指定する。

 たとえば、以下のように書き直す。

document.getElementById('body').style.backgroundColor = '#eeee22'

感想 §

 うっかり、色は数値だろう、などと思っていると罠にはまるということですね。

 特に、常用ブラウザがOpera以外だと、気付くのが遅れます。